//package com.tiancheng.trade.order.aop;
//
//import com.tiancheng.trade.commom.core.exception.BusinessException;
//import com.tiancheng.trade.commom.core.exception.error.BusinessErrorInfoEnum;
//import com.tiancheng.trade.commom.core.exception.error.CommonErrorInfoEnum;
//import com.tiancheng.trade.order.enums.SystemSourceEnum;
//import com.tiancheng.trade.order.vo.api.OrderVO;
//import lombok.extern.slf4j.Slf4j;
//import org.apache.commons.lang3.StringUtils;
//import org.aspectj.lang.JoinPoint;
//import org.aspectj.lang.annotation.Before;
//import org.aspectj.lang.annotation.Pointcut;
//
///**
// * 兼容老订单中心的核销流程
// *
// * @author kellen
// * @date 2024/9/3
// */
///*@Component
//@Aspect*/
//@Slf4j
//public class OrderControllerAspect {
//
//    @Pointcut("execution(public * com.cloud.trade.order.controller.api.OrderApiController.create(..))")
//    public void createOrderPoint() {
//    }
//
//    /**
//     * 创建订单时针对场景进行参数校验
//     *
//     * @param point
//     * @return
//     * @throws BusinessException
//     */
//    @Before("createOrderPoint()")
//    public void createOrderAround(JoinPoint point) throws BusinessException {
//        try {
//            OrderVO orderVO = (OrderVO) point.getArgs()[0];
//            // 对各个场景进行判断
//            if(StringUtils.isNotEmpty(orderVO.getSystemSource())){
//                BusinessErrorInfoEnum.ORDER_CREATE_UNKNOWN_SYSTEM.assertIsTrue(SystemSourceEnum.isExitSystem(orderVO.getSystemSource()));
//                //BusinessErrorInfoEnum.ORDER_CREATE_BUSINESS_TYPE_EMPTY.assertNotEmpty(orderVO.getBusinessType());
//            }
//            //如果不是英文版的订单，需要对手机号做非空校验
//            if(StringUtils.isEmpty(orderVO.getOrderBusiness())
//                    || !"overseas".equals(orderVO.getOrderBusiness())){
//                BusinessErrorInfoEnum.ORDER_CREATE_MOBILE_NUN.assertIsTrue(StringUtils.isNotEmpty(orderVO.getMobile()));
//            }
//        } catch (BusinessException e) {
//            throw e;
//        } catch (Throwable e) {
//            log.error(e.getMessage(), e);
//            throw new BusinessException(CommonErrorInfoEnum.SERVER_BUSY, null, e.getMessage(), e);
//        }
//    }
//}
